import {EntityEvent} from "./AttrDefine";
import {EntityTag} from "./EntityConfig";

export type Construct<T = any> = new (...args: Array<any>) => T;

export class ContextData {
	comp2EventMap : Map<string,EntityEvent> = new Map<string, EntityEvent>()
	comps : Array<EntityComponent> = new Array<EntityComponent>()
	unique2CopsMap : Array<string> = new Array<string>()
	name : string
	Name : string
}

export  class EntityData{
	comp2EventMap : Map<string,EntityEvent> = new Map<string, EntityEvent>()
}

export class Property{
	name : string
	type : string
}

export  class EntityComponent{
	name : string
	Name : string
	tag : string
	unique : boolean
	isSimple : boolean = true
	propertyList : Array<Property>
}